<template>
  <header class="header">
    <h1>todos</h1>
    <input id="toggle-all" class="toggle-all" v-model="isAll" type="checkbox" />
    <label for="toggle-all"></label>
    <input
      class="new-todo"
      placeholder="输入任务名称-回车确认"
      autofocus
      @keydown.enter="downFn"
      v-model="task"
    />
  </header>
</template>

<script>
export default {
  props: ['list'],
  data() {
    return {
      task: '',
    }
  },
  // 定义计算属性
  computed: {
    isAll: {
      // 影响数组里每个小选框绑定的isDone属性
      set(checked) {
        this.list.forEach((item) => {
          item.isDone = checked
        })
      },
      get() {
        // 如果没有数据, 直接返回false-不要让全选勾选状态
        return this.list.length !== 0 && this.list.every((item) => item.isDone)
      },
    },
  },
  methods: {
    downFn() {
      // 判断输入不能为空
      if (this.task.trim() === '') return alert('输入字符非法')
      // 接收父组件的自定义事件
      this.$emit('add', this.task)
      // 清空表单
      this.task = ''
    },
  },
}
</script>
